package com.desire.mapper.sys;

import com.desire.bean.sys.Dept;
import com.desire.common.Base.BaseMapper;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * @author LittleDesire
 * @description
 * @date 2022-05-14 周六 16:44
 * @since 17
 */
@Mapper
public interface DeptMapper extends BaseMapper<Dept> {
    /**
     * 查询同一企业下的 指定的pid下的最大编号
     *
     * @param euid 企业用户id
     * @param pid  上级部门id
     * @return 指定的pid下的最大编号
     */
    String queryMaxCode(@Param("euid") String euid, @Param("pid") String pid);

    /**
     * 根据部门id 查询部门编号
     *
     * @param id 部门id
     * @return 部门编码
     */
    String queryCodeById(String id);

    /**
     * 查询子部门
     *
     * @param map
     * @return 子部门
     */
    @MapKey("id")
    List<Map<String, Object>> queryChildDept(Map<String, Object> map);

    /**
     * 查询部门之间的舒心结构图
     *
     * @param map
     * @return
     */
    @MapKey("id")
    List<Map<String, Object>> queryTree(Map<String, Object> map);


    /**
     * 查询传入的部门id 下 是否还含有子部门
     *
     * @param id 要删除的部门id
     * @return
     */
    int queryChildExist(Serializable id);
}
